package com.ht.pms.core.dao;

import java.util.List;
import java.util.Map;

import com.ht.pms.core.common.constant.SalaryTemplateTableEnum;
import com.ht.pms.core.dto.dict.DictParamsDto;
import com.ht.pms.core.dto.dict.DictParamsReq;
import com.ht.pms.core.dto.dict.DictRecordBaseDto;
import com.ht.pms.core.dto.tempalte.TemplateReq;
import com.ht.pms.core.dto.upload.UploadFile;

public interface SalaryBusinessDictDao {
    List<DictParamsDto> querySalaryBusinessDictTable();

    void addColumn(String tableName, String columnName, String dictDataDes);
    
    void insertBatchBusinessDict(List<Integer> paramIndex, String string, List<List<String>> content, Integer fileId, String batchCode, int stateIndex);

	void deleteBusinessDictByBatch(Integer fileId);

	void insertBatchBusinessDictBase(Integer fileId, String batchCode, int stateIndex, int jobCodeIndex2, List<List<String>> content);

	List<DictParamsDto> querySalaryBusinessDictExcludByTemplateCode(String templateCode);

	List<DictParamsDto> selectBatchDict(List<String> resultFields);

	void updateBatchBusinessDict(List<Integer> paramIndex, String string, List<List<String>> content, String batchCode, Integer fileId, int jobCodeIndex, int stateIndex);

	void updateBatchBusinessDictBase(Integer fileId, String batchCode, int stateIndex, int jobCodeIndex,
			List<List<String>> content);
	


	List<DictParamsDto> selectDictParamList(TemplateReq req);

	int selectDictParamCount(TemplateReq req);

	int updateDictParam(DictParamsDto dictParam);

	DictParamsDto selectDictParamByDictCode(String dictCode);

	DictParamsDto selectMaxDictParamByTableName(String salaryDictRecordC);

	int insertDictParam(DictParamsDto dictParam);

	DictParamsDto selectDictParamByDictName(String dictName, String tableName);

	int createField(DictParamsDto dictParam);

	DictRecordBaseDto selectDictRecordIsExist(String jobCode, Integer fileId, String tableName);

	int getExcelDataCount(String countSql);

	List<Map<String, Object>> getExcelDataLimit(String dataSql);

	int updateSalaryDictState(UploadFile uploadFile, String tableName);
	
	
}
